/*
______     _   __                ___  ___           _       ___         _             _       
| ___ \   | | / /                |  \/  |          | |     /   |       | |           (_)      
| |_/ /__ | |/ /  ___ _   _ ___  | .  . | __ _  ___| |__  / /| |  _ __ | |_   _  __ _ _ _ __  
|  __/ _ \|    \ / _ \ | | / __| | |\/| |/ _` |/ __| '_ \/ /_| | | '_ \| | | | |/ _` | | '_ \ 
| | | (_) | |\  \  __/ |_| \__ \ | |  | | (_| | (__| | | \___  | | |_) | | |_| | (_| | | | | |
\_|  \___/\_| \_/\___|\__, |___/ \_|  |_/\__,_|\___|_| |_|   |_/ | .__/|_|\__,_|\__, |_|_| |_|
                       __/ |                                     | |             __/ |        
                      |___/                                      |_|            |___/         

*/

#define POKEYS_MACH4_VERSION		"9.14.0.5325"
#define COMPATIBLE_MACH4_BUILD		"0.5325"

/*
CHANGELOG

9.14.0.5325 (20.2.2025)
- back-up after homing numeric field max increased to 100000

9.13.0.5325 (21.12.2024)
- updated to the latest version of wxWidgets

9.12.0.5325 (20.11.2024)
- Fixed the IO setup not saving settings

9.11.0.5325 (24.9.2024)
- PoIL shared data slot read/write error handling

9.10.0.5325 (5.6.2024)
- Pendant STOP also stops spindle

9.09.0.5325 (30.5.2024)
- Remember requirement for presence of PoPendant/kbd48CNC on CAN

9.08.0.5325 (22.5.2024)
- Operational 'Ref all' and 'Goto 0's' buttons on the kbd48CNC

9.07.0.5325 (15.4.2024)
- Fix for pin mapping settings not updating correctly on pendant configuration changes

9.06.0.5325 (28.3.2024)
- Support for M67 (analog motion-sync commands - e.g. laser PWM control) - M67 E0 Q100 (only Analog output 0 is supported)

9.05.0.5070 (21.3.2024)
- Logging of SyncOutputs

9.04.0.5070 (8.1.2024)
- Improved support for PoPendant with PoKeys57CNCpro4x25
- Threading with step/dir spindle supported (requires spindle sensor - index or index+encoder)

9.03.0.5070 (5.1.2024)
- PoKeys57CNCpro4x25 pendant support

9.02.0.5070 (9.11.2023)
- fixed plugin configuration crash on disabling support for M62/M63

9.01.0.5070 (3.4.2023)
- improved compatibility with PoKeys57CNCpro4x25
- PlasmaSens / PlasmaDiv configuration option in new device wizard (automatic PlasmaScreen THC configuration)

9.00.0.5070 (27.3.2023)
- latest version of PoKeysLib used
- support for PoKeys57CNCpro4x25

8.95.0.5070 (25.2.2023)
- saving of profile settings triggered from Mach4 plugin on reconfiguration

8.94.0.5070 (23.2.2023)
- switch to the latest SDK

8.93.0.5069 (23.2.2023)
- switch to the latest SDK
- explicit dwelve of 50 ms after completion of the probing step

8.92.0.5065 (19.2.2023)
- switch to the latest SDK
- improved probing sequences

8.90.0.5036 (3.2.2023)
- updated probing sequence

8.89.0.5036 (1.2.2023)
- updated logging in 5xxx Mach4 builds
- updated probing sequences

8.88.0.5036 (27.1.2023)
- using latest SDK
- probing improvements

8.87.0.4724 (27.12.2022)
- added configuration option 'SharedDataSlotsFull' to enable all 64 PoIL shared data slots

8.86.0.4724 (28.11.2021)
- added option to invert encoder index signal polarity when homing

8.85.0.4724 (7.10.2021)
- fixed a bug in multiple probe support (probe 2 input used when G31.1 was commanded)

8.84.0.4724 (16.9.2021)
- support for multiple probe inputs

8.83.0.4724 (16.5.2021)
- changed the SDK to latest version

8.83.0.4334
- Default spindle pulley speed when adding new device

8.82.0.4343 (9.2.2021)
- Fixed display of PWM output status in diagnostic window

8.81.0.4243 (19.1.2021)
- Probe status reporting improved

8.80.0.4243 (8.1.2021)
- Additional logging for synchronized outputs

8.79.0.4243 (21.9.2020)
- Ignore Fast USB error if Pulse engine not enabled

8.78.0.4243 (16.9.2020)
- DeviceCommand register accepts SetPos command (SetPos AxisID Position)

8.77.0.4243 (8.8.2020)
- Synchronized outputs (OC sequence updated)

8.76.0.4243 (21.5.2020)
- Additional checking of PoExtBusData transfers

8.75.0.4243 (29.4.2020)
- Backlash enabled for PoKeys57CNCdb25 devices

8.74.0.4243 (11.2.2020)
- OEM lock updated

8.73.0.4243 (3.1.2020)
- Automatic realignment of the slaved axis if discrepancy in current motor position is detected on start

8.72.0.4243 (15.12.2019)
- Updated conditions for responding to stop requests from Mach4

8.71.0.4342 (12.12.2019)
- Changes to the stop requested handling

8.70.0.4342 (23.11.2019)
- New SDK
- Fast outputs mapping fixed (was shifted for one output # in some devices)

8.69.0.4239 (2.11.2019)
- Option to force motion parameters update on every homing procedure (to support changing motion parameters from G-code)

8.68.0.4239 (24.10.2019)
- Support for device system log export

8.67.0.4239 (9.10.2019)
- Allowing home and limit pins sharing between axes

8.66.0.4239
- New version of libusb library with fixed issue with fast USB on Windows update 1809

8.65.0.4239
- Backlash compensation speed setting persistent for plugin

8.64.0.4239
- Changes to the position synchronization code, added logging, new SDK

8.63.0.4206
- fixed special functions bug

8.62.0.4206
- fixed issue with special functions using analog inputs

8.61.0.4206
- new SDK

8.60.0.4117
- support for synchronized digital outputs (M62/M63 commands)

8.59.0.4117
- kbd48CNC IO registration done earlier in the initialization

8.58.0.4117
- Improved speed of auxilary task handling (updating kbd48CNC, PoExtBus outputs, etc.)

8.57.0.4117
- PoExtBus outputs data included in the diagnostic screen

8.56.0.4117
- Step overflow event results only in a log entry, no message displayed (Mach4 core sync event issues)

8.55.0.4117
- Improved setup of blank (unconfigured) devices

8.54.0.4117
- Support for step signal inversion (active low)

8.53.0.4117
- New SDK version

8.53.0.3813
- Reduced speed for homing configurable via profile setting

8.52.0.3813
- Probe status register added ('ProbeStatus')
		-4: stop probing command received during probing
		-3: probing was interrupted
		-2: probing start commanded, but the device is not in running state
		-1: cycle stop command received during probing
		 2: probing start commanded
		 3: probe was hit, stopping
		 4: probing finished, motion stopped	

8.51.0.3813
- Improved pendant handling

8.50.0.3813
- Fixed 'Load default' button for PoPendant1 configuration

8.49.0.3813
- UF encoder index counter added to diagnostic screen
- diagnostic screen configured to allowed closing

8.48.0.3813
- fix for spindle range not configured (no threading / spindle speed control)

8.47.0.3813
- fixed issue with 'Fast USB connection' error on startup

8.46.0.3813
- fixed issue with kbd48CNC handling at startup

8.45.0.3813
- newest SDK

8.45.0.3630
- threading diagnostic
8.44.0.3630
- spindle index counter capture
8.43.0.3630
- threading buffer flush wait

8.42.0.3630
8.41.0.3630
- updated logging interface

8.40.0.3630
- additional 'Special functions' for controlling Machine enable and Spindle
- input filtering turned on by default

8.39.0.3630
- Home in place bug fixed

8.38.0.3630
- OEM updates

8.37.0.3630
- pin mapping settings page updated to reflect device limitations

8.36.0.3630
- support for OEM device functionality

8.35.0.3630
- Improvements on the 'step overflow' error condition
- Improvements of the normal-to-sync mode transition (threading)

8.34.0.3630
- MPG pendant - step selection persistency bug fixed

8.33.0.3630
- Reduced the connection timeout
- Pendant handling device disconnect improved

8.32.0.3630
- Engine mode option added to Pulse engine settings - external (also PoBlocks) motion data source can drive the unused axes

8.31.0.3630
- support for Mach4 .3630 build

8.27.0.3418
- support for PlasmaSens
- reduced number of active Mach4 registers
- corrected Misc dialog page title

8.26.0.3418
- reduced logging output

8.25.0.3418
- fixed 'Change device' operation in plugin configuration

8.24.0.3418
- probing race condition addressed - Mach4 instructs the plugin to start probing before the motion data was consumed
- cycle stop if probing interrupted

8.23.0.3418
- implemented support for log recorder

8.22.0.3418
- switch to mach4 .3418
- bandwidth and network setup tests included
- mapping of motor enable output signals to on-board relay outputs allowed

8.22.0.3344
- fixed crash after IO mapping change due to different PE setup

8.21.0.3344 (9.5.2017)
- update to the locale settings to address decimal symbols

8.20.0.3344 (21.4.2017)
- jogging updates (to avoid situation of motion steps overflow)

8.19.0.3344 (10.4.2017)
- additional probing-related messages

8.18.0.3286 (5.2.2017)
- homing back-off supported

8.17.0.3286 (28.1.2017)
- switch to Mach4 .3286
- connection error message on serial 0

8.16.0.3272 (2.1.2017)
- Matrix LED2 update fixed?
- MPG jogging updated to use the Mach4 native commands

8.15.0.3225 (11.12.2016)
- LCD not populated with default contents when saving the settings

8.14.0.3225 (2.11.2016)
- switch to Mach4 .3225

8.13.0.3206 (31.10.2016)
- PoStep communication bug fixed
- pin function invert option bug fixed

8.12.0.3112 (12.10.2016)
- switch to Mach4 .3206

8.11.0.3112 (28.9.2016)
- support for step/dir spindle (not complete)
- support for changing E-stop pin

8.10.0.3112 (2.8.2016)
- motor driver error input handling
- stability updates
- spindle high RPM warning fixed

8.09.0.3112 (31.7.2016)
- automatic default axis mapping setup

8.08.0.3112 (21.7.2016)
- fixed memory leak problem in adding new devices dialog

8.07.0.3112 (20.7.2016)
- included the support for PoKeys57 series devices with reconfigurable USB interfaces

8.06.0.3112 (12.7.2016)
- default pin assignment for PoKeys57CNCdb25 changed - home/limit inputs for axes x,y,z moved to pins 11, 12 and 13

8.05.0.3112 (11.7.2016)
- logging switch added (Logging) with value 0 (log disabled), 1 - default (Mach4 diagnostic log enabled), 2 (full log enabled)

8.04.0.3112 (24.6.2016)
- switch to Mach4 v0.3112
- fixed matrix keyboard refreshing problem with the last row/column

8.03.0.3017 (30.5.2016)
- Improved new device wizard's error handling
- Fixed PoStep drivers configuration (Step mode, currents)


8.02.0.3017 (21.5.2016)
- Improved IO synchronisation on startup
- Improved MPG jogging (less commands to Mach4 regarding MPG configuration)

8.01.0.3017 (30.4.2016)
- Built with Mach4 SDK 0.3017
- Switch configuration wizard
- Automatic import and export of Pulse engine settings (from and to Mach4)

8.00.0.2914 (26.4.2016)
- New build environment (compatible with Mach4 system packages)
- Unmapping of signals fixed

7.30.0.2914 (7.4.2016)
- Fixed the plugin mapping warning for PoKeys devices used as IO
- Improved communication speed and width
- Automatic device configuration saving after exiting Mach4

7.29.0.2914 (28.3.2016)
- Support for index-based threading
- Added warning on spindle speed out of bounds during threading

7.28.0.2914 (20.3.2016)
- New device wizard updated
- Settings transfer between PoKeys plugin and Mach4 improved
- Checking for valid configuration of switches
- Max. frequency check on startup to prevent step frequency overflow
- Automatic selection of motion device in Mach4 when adding a new PoKeys device

7.27.0.2914 (17.3.2016)
- IO pins for PoKeys57CNCdb25 added
- Initial configuration dialog
- Warning of missing PoKeys devices

7.26.0.2914 (16.3.2016)
- support for swapping step/dir pins in PoKeys57CNCdb25

7.25.0.2914 (13.3.2016)
- Home position offset
- Homing algorithm selection
- Digital filtering of the limit and home signals
- Chargepump pin selection
- PoStep drivers configuration dialog update

7.24.0.2914 (2.3.2016)
- Mach4 2914 SDK
- Stepper motor driver selection option on new device dialog
- Pendant status LED inverted on new device dialog
- Reorganisation of Pulse engine and spindle pages
- Threading filter parameters added
- Ultra fast encoder filtering option added
- More logging entries

7.23.0.2849 (14.1.2016)
- fixed encoder registers updating
- Mach4 2849 SDK

7.22.1.2832 (11.1.2016)
- encoders exported to proper encoder registers

7.21.1.2832 (17.12.2015)
- support for new device PoKeys57CNCdb25
- fixed axis enabled bug

7.20.1.2832 (13.12.2015)
- new Mach4 version
- PoKeys communication glitches fixed

7.19.1.2805 (8.12.2015)
- limit or emergency stops now generate separate messages

7.18.1.2805 (30.11.2015)
- support for PoStep driver configuration

7.17.1.2805 (15.11.2015)
- fixed probing
- build for .2805

7.16.1.2725 (6.10.2015)
- support for Matrix LED
- access to dedicated limit/home switch inputs for use as general purpose inputs

7.15.1.2694 (29.9.2015)
- Spindle speed measurements related update (latest firmware required)

7.14.1.2694
- Fixed an issue of establishing the connection ('unsupported firmware version' message)
- Built with latest Mach4 libs

7.13.1.2686
- Driver error input exposed to Mach4

7.12.1.2686
- stop motion on exit

7.11.1.2660
- connection timeout settings implemented
- updates to the limit/home switches configuration

7.10.1.2660
- updated firmware version message
- synchronisation of limit/home switch settings only if settings are active

7.9.1.2660
- no changes

7.9.1.2651
- inverted homing direction to correspond correctly to Mach4 settings

7.8.1.2580
- reduced communication timeouts
- emergency signal settings propagation to PoKeys plugin settings

7.7.1.2522
- support for relays and SSR outputs on PoKeys57CNC
- removed iPinInvert option to streamline the settings

7.6.1.2522
- support for backlash compensation implemented
- versioning scheme updated

*/